1. Field
The following description relates to a database system such as an apparatus and method for enhancing input/output (IO) performance of a database system.
2. Description of Related Art
A majority of applications such as Facebook, Twitter, G-mail, and the like, operating in mobile devices such as smartphones use SQLite to manage data. The reason for using SQLite in mobile devices is because SQLite enhances productivity of development through an SQL interface and provides a transaction functionality.
However, a page-based journaling technique introduced for SQLite to provide a transaction function lays a heavy burden on an IO system of smartphones.
FIG. 1 is a diagram illustrating a journal mode of SQLite.
Referring to FIG. 1, a technique used by SQLite is storing the entirety of a page before being updated in a separated rollback file (rollback mode) or duplicating an updated page in a separate file called a write-ahead log (WAL) and reflecting the same in the original database later (WAL mode) when performing updating. However, the journaling technique of SQLite has a structural problem causing a great deal of IOs, so it has been known to lay a heavy burden on a storage of a smart phone which is relatively slow. In particular, 70% of write IO commands generated in an Android platform have been known to be related to the SQLite. Since the number of smartphone platforms such as Android is anticipated to exceed the number of PCs in the future, it is important to enhance performance of SQLite.
As a result, SQLite triggers a great deal of write operations with a rollback journal file and a WAL file to support transaction atomicity and durability, and in particular, it frequently calls a ‘sync’ call to guarantee complete writing from a buffer of an operating system to a storage explicitly. The IO inefficiency of the journaling technique is pointed out as a major reason for inefficiency of applications using SQLite.